home *** CD-ROM | disk | FTP | other *** search
/ C++ für Kids / C++ for kids.iso / Loesung / Loesung.txt < prev    next >
Text File  |  1999-03-04  |  12KB  |  122 lines

  1. L÷sungen
  2. 1 Das erste Projekt
  3. Fragen
  4. 1. Ein Programm in C++Builder h÷rt nicht einfach auf, wenn die letzte Programmzeile ausgefⁿhrt wurde. Das Formfenster bleibt weiter bestehen. Erst mit einem Klick auf Schlie▀en oder den Tasten [Alt][F4] ist das Programm abgeschlossen.
  5. 2. In C++Builder umfa▀t die Erstellung und Bearbeitung eines Programms gleich mehrere Dateien. Deshalb bezeichnet man alles zusammen als Projekt.
  6. 3. Im Formfenster verteilst und ordnest Du Deine Komponenten aus der Komponentenpalette (bis jetzt hast Du nur die SchaltflΣche benutzt). Im Editorfenster kⁿmmerst Du Dich um die Methoden, damit das Programm laufen kann. Ohne den Programm- bzw. Quelltext fⁿhrt nΣmlich eine Aktion wie z.B. das Klicken auf eine SchaltflΣche zu keinem erkennbaren Ergebnis.
  7. Keine Aufgaben
  8.  
  9. 2 Datentypen und Operatoren
  10. Fragen
  11. 1. Hauptkomponente ist das Formfenster, kurz Form genannt. Daneben sind aus diesem Kapitel erst mal zwei weitere Komponenten bekannt: Die Schalt- und die AnzeigeflΣche (Button und Label).
  12. 2. Ereignisse sind z.B. Mausklicks oder Tastendrⁿcke. Mit Ereignissen lassen sich Methoden verknⁿpfen, die aktiviert werden, wenn ein Ereignis eintritt: So wird z.B. beim Ereignis OnButton die Methode ButtonClick aktiviert. Viele Methoden sind mit einem Objekt wie z.B. Formfenstern, Buttons, Labels oder anderen Komponenten verbunden.
  13. 3. Der Eigenschaft Caption mu▀ ein neuer Wert zugewiesen werden, z.B.
  14. Button1->Caption := IntToStr (Random (1000)+1);
  15. Aufgaben
  16. 1. Einen Versuch findest Du im Projekt mit dem Namen PROJCT2A.MAK.
  17. 2. Das Projekt HOROSKOP.MAK bietet Dir ein Gerⁿstprogramm mit zw÷lf beschrifteten Buttons, zu denen die ButtonClick-Methoden bereits existieren. Nur die drei Fragezeichen mu▀t Du selbst noch durch passende Vorhersagetexte ersetzen.
  18. 3. Dazu schau mal in den Programmtext zum Projekt MATHE3.MAK.
  19.  
  20. 3 Bedingungen
  21. Fragen
  22. 1. Mit dem Operator "=" (einfaches Gleichheitszeichen) werden Ausdrⁿcke oder Werte zugewiesen, mit dem Operator "==" (doppeltes Gleichheitszeichen) werden Ausdrⁿcke oder Werte verglichen.
  23. 2. Der Haken ist, da▀ auch "zu gro▀" ausgegeben wird, wenn die Zahl richtig ist: Das Gegenteil (else) von < ist nΣmlich >=.
  24. 3. Fⁿr Zensur wird ein zufΣlliger Wert zwischen 1 und 6 erzeugt.
  25. Aufgaben
  26. 1. Dazu findest Du einen Vorschlag in MATHE2A.MAK.
  27. 2. Schau Dir dazu mal das Projekt ZENSUR2A.MAK an.
  28. 3. Das Raten-Projekt trΣgt den Namen ZRATEN3A.MAK.
  29.  
  30. 4 Kontrollstrukturen
  31. Fragen
  32. 1. Das Programm steckt in einer Endlos-Schleife fest: Weil das Kapital sich nie vermehren kann, wird daraus nie eine Million. Heraus kommt man da nur mit den Tasten [Strg][F2].
  33. 2. ▄ber die Eigenschaft ItemIndex wird bei einem Listenfeld (ListBox) oder Kombinationsfeld (ComboBox) ermittelt, welcher Eintrag ausgewΣhlt worden ist.
  34. Aufgaben
  35. 1. Eine L÷sung steht in DRUECK1.MAK.
  36. 2. Schau Dir dazu mal das Projekt HSKOP2.MAK an. (Allerdings gibt's auch hier nur ein Gerⁿst.)
  37.  
  38. 5 Komponentensammlung
  39. Fragen
  40. 1. Wenn Optionsfelder oder Kontrollfelder in einem Formfenster zu einer Gruppe zusammengefa▀t sind, kann man bei Optionsfeldern (RadioGroup/RadioButtons) immer nur eine Komponente einschalten. Bei Kontrollfeldern (ChecKBoxes) dagegen lassen sich beliebig viele Komponenten einer Gruppe aktivieren.
  41. 2. Der Standardtyp fⁿr Zeichenketten in C++ ist char*., ein auch an Windows orientierter Stringtyp. Genau besehen wird damit nur eine Stelle im Arbeitsspeicher Deines PC angezeigt, an der diese Zeichenkette beginnt. ▄ber die LΣnge wird dabei nichts ausgesagt. Das Ende dieser Art von Strings erkennt man an dem Abschlu▀zeichen #0. Und fⁿr den n÷tigen Platz im Arbeitsspeicher mu▀t Du selbst sorgen. Daneben bietet C++Builder aber auch den Typ String. Damit wird gleich der ben÷tigte Platz im Arbeitsspeicher Deines PC vereinbart. Auch bei Zuweisungen und Verknⁿpfungen lΣ▀t sich dieser Stringtyp bequemer handhaben.
  42. Aufgaben
  43. 1. Dazu findest Du ein Gerⁿstprogramm im Projekt HSKOP3.MAK.
  44. 2. Die L÷sung k÷nnte so wie in KLEMP4A.MAK aussehen.
  45.  
  46. 6 Aktion Seelenklempner
  47. Fragen
  48. 1. Beide Felder dienen der Anzeige von Text. Weil die Anzeigetafel (Panel) dabei von einem sichtbaren Rand umgeben ist, der sich einstellen lΣ▀t, kann sie auch Σhnlich wie ein Gruppenfeld Komponenten umrahmen und zusammenfassen.
  49. 2. Diejenige Komponente, die im Formfenster gerade aktiviert ist,  besitzt den Fokus. Beim Programmstart erhΣlt die Komponente den Fokus, die der Eigenschaft ActivControl der Klasse TForm zugeordnet ist.
  50. 3. Eine Textdatei kann z.B. ⁿber ein Objekt vom Typ TStringList mit LoadFromFile ge÷ffnet und mit SaveToFile gespeichert werden.
  51. 4. Als erstes wird eine Instanz vereinbart, z.B. ⁿber TStringList *EineListe; Damit das Objekt dann auch funktionstⁿchtig ist, wird mit EineListe = new TStringList; der n÷tige Platz im Arbeitsspeicher reserviert.
  52. Aufgaben
  53. 1. Dazu mu▀t Du Dir mal die Projektdatei PROZENT.MAK anschauen.
  54. 2. Eine L÷sung ist in der Methode TForm1::Button2Click des Projekts KLEMP7A.MAK zu finden.
  55.  
  56. 7 Menⁿs und Dialoge
  57. Fragen
  58. 1. Zuerst legt man ein Symbol fⁿr die Komponente MainMenu auf dem Formfenster ab. Mit Doppelklick kommt man in den Menⁿeditor. Dort lΣ▀t sich jeder einzelne Eintrag eingeben. Im Objektinspektor lassen sich zusΣtzlich die Eigenschaften anpassen. Nach Doppelklick auf einen Menⁿeintrag kann man die damit verknⁿpfte Methode bearbeiten.
  59. 2. Am Rⁿckgabewert der Methode Execute: Bei allen drei Objekten ist dieser Wert true, wenn der Dialog mit OK beendet wird. Ansonsten gibt Execute false zurⁿck.
  60. 3. Objekte vom Typ TStringList sammeln Zeichenkette zeilenweise, sind also sozusagen BehΣlter fⁿr Strings. Objekte vom Typ TRichEdit k÷nnen einen normalen oder formatierten Text (z.B. mit Schriftart und Absatzformaten) aufnehmen, anzeigen und ausdrucken lassen. (Textformate haben die Kennung TXT und RTF.)
  61. Keine Aufgaben
  62.  
  63. 8 Grafik mit Canvas
  64. Fragen
  65. 1. Bei MoveTo wird sozusagen eine unsichtbare Linie gezeichnet und bei LineTo eine Linie in der aktuellen Zeichenfarbe (Pen->Color).
  66. 2. Man kann auch void als Typ ansehen. Danach ist eine Prozedur eine Funktion vom Typ void, die eben ╗ein Nichts½ zurⁿckgibt. In frⁿhen C-Versionen gab es wirklich nur Funktionen, der Typ void war dort unbekannt.
  67. 3. Probier es aus: Ohne public kannst Du auf keine Eigenschaft oder Methode mehr zugreifen, C++Builder meldet ╗not accessible½.
  68. Aufgaben
  69. 1. Die eine Anweisung findest Du im Projekt GRAFIK6A.MAK.
  70. 2. Dazu solltest Du mal die Projektdatei QUADRAT.MAK ÷ffnen.
  71.  
  72. 9 Kapselung und Vererbung
  73. Fragen
  74. 1. Daten und Code bzw. alle Eigenschaften und Methoden eines Objekts werden zu einer Einheit zusammengefa▀t. Ein Zugriff von au▀en ist nur ⁿber den Namen des Objekts m÷glich - wenn die Elemente als public vereinbart wurden.
  75. 2. Wird eine Klasse so vereinbart class Name : public Vorfahr, dann verfⁿgt sie automatisch ⁿber alle Eigenschaften und Methoden des Vorfahren. Mit einer geeigneten Basisklasse lΣ▀t sich so eine komplette Klassenfamilie aufbauen, bei dem die letzte Klasse in der Hierarchie alles erbt, was all ihre Vorfahren an FΣhigkeiten zu bieten haben. (Voraussetzung ist immer, da▀ die Vererbung als public vereinbart wurde.)
  76. 3. In einer Headerdatei werden die Strukturen von Typen bzw. Klassen vereinbart sowie Methoden und Funktionen deklariert. In der zugeh÷rigen Unitdatei werden globale Variablen vereinbart und die Methoden und Funktionen klar definiert.
  77. 4. ▄ber DATEI und NEU wΣhlst Du im Dialogfeld NEUE EINTR─GE das Symbol fⁿr Komponente aus. Dann trΣgst Du im Dialogfeld KOMPONENTEN-EXPERTE den Namen der Klasse und des Vorfahren ein. C++Builder erzeugt eine neue Unit mit den n÷tigen Basisvereinbarungen der neuen Klasse. Nach dem Speichern der Unitdatei steht auch die Headerdatei zur Verfⁿgung. Dort kannst Du weitere Vereinbarungen einfⁿgen. Wird in einer anderen Datei ein Objekt der neuen Klasse vereinbart, mu▀ in dieser Datei eine #include-Direktive (mit dem Namen der neuen Headerdatei) einfⁿgt werden.
  78. Aufgabe
  79. 1. Eine M÷glichkeit findest Du im Projekt MATHE4A.MAK.
  80.  
  81. 10 Eigene Komponenten
  82. Fragen
  83. 1. Mit der Methode Hide kannst Du viele Komponenten vom Formular (scheinbar) verschwinden lassen. Und mit Show tauchen sie dann wieder auf.